<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 布尔
        // 假值 null undefinde false "" NaN +0 -0
        console.log(Boolean(null), Boolean(undefined), Boolean(false), Boolean(""), Boolean(NaN), Boolean(+0), Boolean(-0))

        // || && 会将值转换为Boolean类型
        // && 两者为真返回真 左值为真返回右值
        console.log(1&&2,0&&3) // 2 0
        // || 两者都为假返回假 左值为假返回右值
        console.log(1||2,0||3) // 1 3

        // 前者实例化对象为包装器类型
        console.log(new Boolean(false),Boolean(false))

        // "==" "===" Object.is()
        //  == 不会进行类型转换
        // === 先进行类型转换 之后进行比较 +0和-0相等 NaN不相等

        console.log(NaN === NaN,Object.is(NaN,NaN),NaN === Number.NaN,Object.is(NaN,Number.NaN))

        console.log(+0 === -0,Object.is(+0,-0))
    </script>
</body>

</html>